import json
import os


def json_to_markdown(json_file, output_dir=None):
    """
    将JSON格式的问答数据转换为Markdown格式

    参数:
    json_file (str): JSON文件的路径
    output_dir (str, optional): 输出目录，默认为当前目录
    """
    # 读取JSON文件
    with open(json_file, 'r', encoding='utf-8') as f:
        data = json.load(f)

    # 如果未指定输出目录，则使用当前目录
    if output_dir is None:
        output_dir = os.getcwd()

    # 确保输出目录存在
    os.makedirs(output_dir, exist_ok=True)

    # 创建markdown文件
    output_file = os.path.join(output_dir, os.path.splitext(os.path.basename(json_file))[0] + '.md')

    with open(output_file, 'w', encoding='utf-8') as f:
        f.write("# Ascend C问答集\n\n")

        # 按编号顺序处理每个问题
        for i in range(len(data)):
            item = data[str(i)]

            # 写入问题编号和问题
            f.write(f"## {i}. {item['question']}\n\n")

            # 写入相关章节
            if 'related_chapters' in item:
                chapters = ', '.join(item['related_chapters'])
                f.write(f"**相关章节**: {chapters}\n\n")

            # 写入思考过程（如果需要）
            if 'think' in item and item['think']:
                f.write("### 思考过程\n\n")
                f.write(f"{item['think']}\n\n")

            # 写入回答
            f.write("### 回答\n\n")
            f.write(f"{item['answer']}\n\n")

            # 在每个问题后添加分隔线（除了最后一个问题）
            if i < len(data) - 1:
                f.write("---\n\n")

    print(f"转换完成，Markdown文件已保存至: {output_file}")


if __name__ == "__main__":
    # 使用示例
    json_file = "think_ans.json"  # 替换为你的JSON文件路径
    json_to_markdown(json_file)